\documentclass[a4paper, 11pt, oneside]{article}

%%muy util para salto de línea
%\vspace{0.5 cm}
%Para garantizar la división correcta de palabras en castellano
\usepackage[spanish,activeacute]{babel}
%%\hyphenrules{nohyphenation}

\hyphenation{
             an-te-rio-res
             co-he-ren-te
	     Com-pu-ter
             co-no-ci-mien-to
             cons-tan-te
             correc-to
             correc-ta-men-te
             corres-pon-dien-te
             corres-pon-dien-tes
             des-pla-za-mien-to
             di-fe-ren-te
             di-fe-ren-tes
             es-tu-dian-te
             fac-to-ri-za-ción
             in-de-pen-dien-te-men-te
             in-fe-ren-cia
             La-ti-no-a-me-ri-ca-na
             ma-te-má-ti-ca
             má-xi-mo
             pre-di-ca-do
             po-si-ti-vo
             po-si-ti-vos
             ra-zo-na-mien-to
             re-curren-cia
             re-fle-xi-va
             re-pre-sen-ta
             re-pre-sen-ta-ción
             res-pec-to
	     re-troa-limen-ta-ci-ón
             si-guien-te
             si-guien-tes
             va-ria-ble
             va-ria-bles
             }

%Numeración de página
\setcounter{page}{1}
\pagenumbering{arabic}

% idioma
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

%tablas
\usepackage{booktabs}
\usepackage{multirow}

% Personalizar listas
\usepackage{paralist}

%rotar tablas
\usepackage{rotating}

%color tablas
\usepackage{colortbl}
%\usepackage[table]{xcolor}

%espaciado
\usepackage{setspace}
%%\onehalfspacing
\setlength{\parindent}{0pt}
\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex}

%margenes según n. icontec
\usepackage{vmargin}
\setmarginsrb           { 4.0cm}  % left margin
                        { 3.0cm}  % top margcm
                        { 2.0cm}  % right margcm
                        { 2.0cm}  % bottom margcm
                        {   0pt}  % head height
                        {0.0 cm}  % head sep
                        {   9pt}  % foot height
                        { 1.0cm}  % foot sep

% inserción url's notas de pie.
\usepackage{url}

% Paquetes de la AMS:
\usepackage{amsmath, amsthm, amsfonts}
\addto\captionsspanish{\def\refname{\textsc{Bibliografía}}}

\newcommand\portada{
	\begin{titlepage}
		\begin{center}
			{\large \bf ``HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN DE LA UNIVERSIDAD TECNOLÓGICA DE PEREIRA''\par }	
			\vfill
			{\large\bf LINA MARCELA JIMÉNEZ BECERRA \par}
			\vfill
			{\large\bf UNIVERSIDAD TECNOLÓGICA DE PEREIRA  \par}
			{\large\bf FACULTAD DE INGENIERÍAS EEFC \par}
			{\large\bf INGENIERÍA DE SISTEMAS Y COMPUTACIÓN \par}
			{\large\bf PEREIRA\par}
			{\large\bf NOVIEMBRE 11 DE 2011 \par}
		\end{center}
	\end{titlepage}
}
\newcommand\contraportada{
	\begin{titlepage}
		\begin{center}
			{\large \bf ``HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN DE LA UNIVERSIDAD TECNOLÓGICA DE PEREIRA'' \par}
			\vfill
			{\large\bf LINA MARCELA JIMÉNEZ BECERRA \par}
			\vfill
			{\large\bf Documento del anteproyecto de grado presentado como requisito para optar al título de Ingeniero(a) de Sistemas y Computación\par}
			\vfill
			{\large\bf UNIVERSIDAD TECNOLÓGICA DE PEREIRA  \par}
			{\large\bf FACULTAD DE INGENIERÍAS EEFC \par}
			{\large\bf INGENIERÍA DE SISTEMAS Y COMPUTACIÓN \par}
			{\large\bf PEREIRA\par}
			{\large\bf NOVIEMBRE 11 DE 2011 \par}
		\end{center}
	\end{titlepage}
}

\begin{document}
\portada
\contraportada
	%Cambiar el nombre Cuadro por tablas
	\renewcommand{\tablename}{Tabla}

	\renewcommand{\contentsname}{\centering CONTENIDO}
	\tableofcontents
	\clearpage
%Modificar el nombre: Indice de cuadros, por Indice de tablas
	\renewcommand{\listtablename }{LISTA DE TABLAS} 
	\listoftables
	\clearpage
	\begin{center}
	\section{TÍTULO}
	\end{center}
	``HERRAMIENTA DE ESTUDIO PARA LAS MARATONES DE PROGRAMACIÓN PROMOVIDAS EN EL PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN DE LA UNIVERSIDAD TECNOLÓGICA DE PEREIRA''
	\clearpage
	
	\begin{center}
	\section{DEFINICIÓN DEL PROBLEMA}
	\end{center}
%\doublespacing
%\renewcommand{\baselinestretch}{2}
	\subsection{ANTECEDENTES}
	Para promover la participación en competencias de programación, el Semillero de Investigación In-Sílico organiza maratones de programación, estás también son una forma de entrenar a los maratonistas menos experimentados antes de enfrentarse a las maratones colombianas organizadas por la REDIS/ACIS\footnote{Maratones Nacionales organizadas por la Red de Decanos y Directores de Ingeniería de Sistemas y Afines (REDIS), y la Asociación Colombiana de Ingenieros de Sistemas (ACIS).}.

	Actualmente y para llevar a cabo tales competencias se viene utilizando el aplicativo PC\textasciicircum2\footnote{Programming Contest Control System (PC\textasciicircum2), es una herramienta computacional utilizada para someter problemas durante una maratón de programación.} y una de las razones por las cuales se utiliza es porque se ha seguido el estandar existente en las competencias del Circuito Colombiano de Maratones de Programación REDIS/ACIS, según el cual cada una de las sedes participantes a nivel nacional debe usarlo\footnote{Información extraida de: Guía para la configuración de una competencia del Circuito Colombiano de Maratones de Programación [en línea],\\
$<$http://acm.javeriana.edu.co/maratones/wp-content/uploads/descargas/GuiaConfiguracionCCMP.pdf$>$, Pag 4, [Consultado el 5 de Agosto de 2011].}, sin embargo, se han evidenciado una serie de características propias de la aplicación que no contribuyen a mejorar este tipo de eventos. Entre ellas:

	\begin{itemize}

	\item Los clientes del aplicativo PC\textasciicircum2 a través del cual los maratonistas envian la solución de los problemas, debe ser instalado en cada una de las máquinas pertenecientes a las salas de computo que han sido habilitadas para la competencia, lo que implica, limitar el número de equipos participantes a la cantidad de computadores configurados con el cliente, e instalar, configurar y probar la herramienta cada vez que se modifica la sala habilitada para la maratón.

	\item No es posible modificar la herramienta computacional debido a que no es Open-Source.\footnote{Información obtenidad de: FAQ del proyecto PC\textasciicircum2, [en línea], $<$http://www.ecs.csus.edu/pc2/doc/faq/index.html\#GETSOURCEFAQ$>$, [Consultado el 8 de Agosto de 2011].}

	\end{itemize}

	Tales características afectan negativamente el proceso de entrenamiento que se busca con las maratones lideradas por In-Sílico, puesto que impiden realizar postmaratón, es decir, los competidores no tienen cómo evaluar los problemas a los que se acaban de enfrentar con respecto a esos mismos casos de prueba de la competencia, de modo que puedan resolver los ejercicios que no les fue posible hacer durante la competencia o mejorar los algoritmos que ya habían planteado durante la misma.

	Esto no es factible, en primer lugar porque los problemas son habilitados solamente para el periodo que dura la maratón de programación y los clientes autorizados para envío de las soluciones deben estar instalados en máquinas correspondientes a salas designadas para las competencias, habilitar una postmaratón con el actual aplicativo PC\textasciicircum2 es un proceso lento y desgastante\footnote{Según el Ingeniero Hugo Humberto Morales, promotor de estos eventos, el proceso se toma una semana y 2 horas.} porque es necesario gestionar la sala de computo, hacer pruebas técnicas a cada uno de los clientes y convocar nuevamente a los competidores.

	En segundo lugar, no es posible acceder al código fuente del aplicativo y adicionarle funcionalidades que permitan generar un ambiente de retroalimentación.

	Ante lo anterior y partiendo del hecho de que modificar un estandar no es un proceso inmediato, se ha evidenciado la necesidad de utilizar una herramienta diferente a PC\textasciicircum2 para las maratones que lidera el semillero, de modo que también sea una herramienta de estudio y aporte al verdadero propósito de estas actividades que es contribuir a la retroalimentación entre quienes participan.

	El no contar con una herramienta computacional enfocada a la retroalimentación de los maratonistas, pone en riesgo la pérdida del esfuerzo que tanto el semillero como los maratonistas y el mismo programa han realizado al apoyar este tipo de eventos, pues desafortunadamente, en lo corrido del Circuito Colombiano de Maratones de Programación REDIS/ACIS del presente año se ha observado un índice de deserción del 54,35\%\footnote{Datos tomados de Listados oficiales del circuito REDIS/ACIS 2011, en los que participa la universidad.} en los competidores de la universidad.%%%
%\[pc^2\]

	\subsection{FORMULACIÓN DEL PROBLEMA}
	El programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira no cuenta con una herramienta computacional que permita juzgar los problemas de las maratones de programación con exactamente los mismos casos de prueba de la competencia, durante un periodo de tiempo posterior a las competencias en las que participa, de modo que permita hacer postmaratones y brinde un espacio de retroalimentación entre los competidores.

	\clearpage
	\begin{center}
	\section{JUSTIFICACIÓN}
	\end{center}
%%se deben mencionar todos los aspectos positivos que trae el solucionar la herramienta
	La solución al conjunto de problemas habilitados en una maratón de programación es juzgado de acuerdo a su desempeño frente a un conjunto de casos de prueba específicos de esa competencia, por tanto, la valoración que se obtenga por determinado problema no será necesariamente el mismo si se juzga frente a otros casos de prueba, este es uno de los aspectos que evidencia la importancia de brindar una herramienta en la que el maratonista evalúe su desempeño, puesto que este fácilmente podría buscar un juez diferente al de la competencia y calificar sus problemas, sin embargo, ya no estaría midiendo su desempeño frente al ámbito de la competencia que acaba de pasar.

	El hecho de que el aplicativo empleado actualmente para llevar a cabo las maratones impida realizar una retroalimentación de las mismas, evidencia una clara falencia que debe ser superada, puesto que si bien es importante promover la participación en las maratones de programación, también lo es suministrar una herramienta de estudio que brinde un ambiente de retroalimentación entre los maratonistas.

	Con una herramienta de estudio postmaratón es posible contribuir al proceso de entrenamiento puesto que los competidores podrían tratar de resolver o mejorar aquellos problemas con los que tuvieron dificultades durante la competencia y además podrían compartir entre ellos mismos los métodos utilizados para resolverlos.
Si se cuenta con una herramienta de estudio de este estilo, es posible  hacer un seguimiento a los competidores después de finalizada la maratón, donde se evidencie si estos intentaton resolver los problemas que no les fue posible solucionar.
	
	Es importante trabajar por la continuidad de las maratones de programación que se han venido llevando a cabo en el programa de Ingeniería de Sistemas y Computación, estas son una forma de darle reconocimiento al programa y a la misma universidad, tanto a nivel nacional como internacional, en repetidas ocasiones los equipos de la Universidad Tecnológica de Pereira han ganado a nivel nacional en el Circuito Colombiano de Maratones de Programación REDIS/ACIS:
	\begin{itemize}
	\item Décima Competencia del año 2010\footnote{Información extraída de los resultados oficiales de la competencia [en línea],\\$<$http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/01/total.htm$>$, [Consultado el 11 de Agosto de 2011].}.
	\item Tercera Competencia del año 2011\footnote{Información obtenida de los resultados oficiales de la competencia [en línea],\\$<$http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/04/board.htm$>$, [Consultado el 24 de Agosto de 2011].}.
	\item Cuarta Competencia del año 2011\footnote{Información consultada en los resultados oficiales de la competencia [en línea],\\$<$http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/05/board.htm$>$, [Consultado el 24 de Agosto de 2011].}.
	\item Octava Competencia del año 2011\footnote{Información extraída de los resultados oficiales de la competencia [en línea],\\$<$http://acm.javeriana.edu.co/maratones/wp-content/uploads/2011/05/board.htm$>$, [Consultado el 29 de Agosto de 2011].}.
	\item Décima Competencia del año 2011\footnote{Información obtenida de los resultados oficiales de la competencia [en línea],\\$<$http://acm.javeriana.edu.co/maratones/board/$>$, [Consultado el 3 de Septiembre de 2011].}.
\end{itemize}

	Utilizar una herramienta opcional a PC\textasciicircum2 que permita además la transferencia del conocimiento entre quienes participan en este tipo de eventos, posibilita que la sede Pereira adquiera una importante experiencia que puede ser compartida con el resto de sedes y competidores a nivel nacional.

%%Implementar una herramienta de estudio adaptada a las necesidades especificas de las maratones llevadas a cabo en la universidad, solucionaría el problema de tener que calificar los problemas desde las salas específicas a las habilitadas para las maratones.

	\clearpage

	\begin{center}
	\section{OBJETIVOS}
	\end{center}
	\subsection{OBJETIVO GENERAL}
%El objetivo general debe delimitar muy bien que es lo que se va a hacer
	Adaptar un juez de maratones de programación para construir una herramienta computacional que brinde una etapa adicional de postmaratón para las competencias de programación, llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira.
	\subsection{OBJETIVOS ESPECÍFICOS}
	\begin{itemize}
%%los objetivos específicos deben delimitar muy bien los entregables
	\item Definir los requerimientos para el diseño de una herramienta computacional orientada a la web que brinde una etapa adicional de postmaratón para las competencias de programación llevadas a cabo en el Programa.

	\item Realizar un estudio que permita seleccionar una herramienta computacional de código abierto que funcione como juez de maratones de programación y se pueda adaptar a las necesidades de este proyecto.

	\item Adaptar la herramienta seleccionada de modo que cumpla con los requerimientos  previamente definidos.
%para que sea una herramienta de estudio.

	\item Implantar la herramienta computacional en un servidor del programa para probar su funcionalidad y puesta a punto.

	\item Implantar una prueba piloto sobre la herramienta computacional para medir los indices de retroalimentación
      postmaratón.

	\item Generar la documentación de la herramienta computacional.
	\end{itemize}
	\clearpage

	\begin{center}
	\section{MARCO REFERENCIAL}
	\end{center}
	\subsection {MARCO HISTÓRICO}
	Un referente histórico de las maratones de programación es la  \emph{Association for Computer Machinery} (ACM), una de las principales organizaciones educativas en cuanto a informática en todo el mundo y que ha promovido este tipo de competencias desde 1977\footnote{Dato obtenido de ACM ICPC \emph{The Early Years ACM Contest Finals} [en línea],\\$<$http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=The\%20Early\%20Years$>$, [Consultado el 5 de Septiembre de 2011].}.

Por medio de las maratones de programación, tanto la ACM como la industria y la académia animan y centran la atención del público en la próxima generación de profesionales de la algoritmia mientras que incentivan a sus participantes en la búsqueda por la excelencia.

	En Colombia, la Asociación Colombiana de Ingenieros de Sistemas (ACIS) y la Red de Decanos y Directores de Ingeniería de Sistemas y Afines (REDIS) han venido colaborando estrechamente desde 2004\footnote{Información extraída de REDIS, Proyectos: Maratón de Programación [en línea],\\$<$http://rediscol.org/cms/proyectos/72-maratón-de-programacion.html$>$, [Consultado el 5 de Septiembre de 2011].}, en la organización de las maratones de programación a nivel universitario y a nivel nacional, con el propósito de generar un espacio de sana competencia y entrenamiento para estudiantes de diferentes universidades del país, estas se enmarcan dentro del circuito mundial de maratones de programación ACM  \emph{International Collegiate Programming Contest} (ACM ICPC).

	\subsection{ESTADO DEL ARTE}
	En el ámbito mundial de las maratones de programación existen diferentes tipos de  \emph{contets}\footnote{Se hace referencia a Concursos de programación.}, tales como el ACM  \emph{regional contests}\footnote{ACIS, Maraton Regional Latinoamericana ACM ICPC 2011 [en línea], $<$http://www.acis.org.co/index.php?id=1677$>$}, el \emph{International Olympiad in Informatics} (IOI)\footnote{IOI Official Regulations [en línea], $<$http://ioinformatics.org/rules/index.shtml$>$.}, el \emph{Central European Olympiad in Informatics} (CEOI)\footnote{CEOI Regulations [en línea], $<$http://ceoi2011.mimuw.edu.pl/$>$.}, el \emph{Google Code Jam}\footnote{Competing in a Round: Mechanics [en línea], $<$http://code.google.com/codejam/faq.html$>$.}, el ACM \emph{International Collegiate Programming Contest} (ACM ICPC)\footnote{Policies and Procedures for the ACM International Collegiate Programming Contest [en línea], $<$http://cm.baylor.edu/ICPCWiki/attach/StaticResources/ICPC\%20Policies\%20and\%20Procedures.pdf$>$.}, el \emph{Internet Problem Solving Contest}(IPSC)\footnote{IPSC Terms and Conditions [en línea], $<$http://ipsc.ksp.sk/terms.php$>$.}, entre otros. \newline
Tales concursos pueden clasificarse en \emph{Real-Time Contest}  y \emph{Online Contests}, si bien, ambos tipos poseen un conjunto de reglas  previamente establecidas por sus organizadores, los \emph{Real-Time} suelen ser más estrictos porque se requiere la presencia física de los maratonistas en el lugar establecido para la competencia.

	De las competencias mencionadas, sobresalen como las más prestigiosas\footnote{Información tomada de Common Mistakes in Online and Real-time Contests [en línea], $<$http://dl.acm.org/citation.cfm?id=1375976\&bnc=1$>$.[Consultado el 12 de Septiembre de 2011], pag 1.} la competencia ACM ICPC en el campo de las \emph{Real-Time} e IPSC en las maratones \emph{Online}.

En el país el Circuito Colombiano de Maratones de Programación REDIS/ACIS se enmarca bajo el modelo de ACM ICPC, de modo que es un circuito de entrenamiento para la Maratón Nacional de ACM ICPC, que se realiza una sola vez al año, mientras el circuito de entrenamiento realiza competencias durante todo el año.

De acuerdo al tipo de concursos mencionados anteriormente, existen herramientas computacionales que permiten llevarlos a cabo, son conocidas como \emph{judge contest}\footnote{Se hace referencia a un sistema juez para concursos de maratones de programación} y consisten en un sistema que recibe el código fuente enviado por el maratonista como solución a un problema de la competencia, para compilarlo y ejecutarlo con los casos de prueba correspondientes, según el desempeño que presente el programa, el sistema devuelve al competidor una respuesta, entre las posibles respuestas se encuentran: \emph{Correct, Presentation Error, Runtime Error, Time Limit Exceeded,} etc.\newline
El algoritmo enviado debe correr bajo restricciones establecidas en el sistema, tales como tamaño limite, memoria limite, restricciones de seguridad, etc.

En su mayoría, dichas herramientas han sido desarrolladas por los propios gestores de los diferentes concursos existentes a nivel  mundial, algunas de estas están a disposición del público interesado, bien sea como  \emph{online judge}  o como aplicaciones descargables para su propio uso.

Los \emph{online judge} son aplicaciones web que se caracterizan por:
\begin{itemize}
\item Poseer una base de datos con problemas de programación clasificados en diferentes categorías.
\item Habilitar sus propios concursos de programación.
\item Contar con sus propios casos de prueba.
\item Suministrar cuentas de usuarios para que el público interesado pruebe los problemas o participe en los concursos.
\item Suministrar estadísticas del desempeño de los usuarios.
\end{itemize}
Entre los  \emph{online judge} disponibles, se encuentran:
\begin{itemize}
\item \emph{UVa Online Judge}\footnote{UVa Online Judge [aplicación en línea], $<$http://uva.onlinejudge.org/$>$}, desarrollado por la universidad de Valladolid en España.\\
Dentro del conjunto de problemas de programación que ofrece, se encuentran los usados en las competencias regionales y mundiales de la ACM ICPC.
\item \emph{Timus Online Judge}\footnote{Timus Online Judge [aplicación en línea], $<$http://acm.timus.ru/$>$}, implementado y mantenido por \emph{Ural State University} de Rusia, brinda acceso entre otros problemas, a los utilizados en la \emph{Northeastern European Regional Contest} (NEERC)\footnote{NEERC [aplicación en línea], $<$ http://neerc.ifmo.ru/information/about.html$>$}.
\item \emph{HDU Online Judge System}\footnote{HDU Online Judge System [aplicación en línea], $<$http://acm.hdu.edu.cn/$>$}, perteneciente a Hangzhou Dianzi University de China.
\item \emph{Internet Problem Solving Contest}\footnote{IPSC [aplicación en línea], $<$http://www.spoj.pl/$>$}, es un juez en línea enfocado a \emph{Online Contest}, útil para entrenamiento en equipo.
\item \emph{Peking University Online Judge}\footnote{POJ [aplicación en línea], $<$http://poj.org/$>$}, presenta además, la opción de solicitar la publicación de problemas o habilitación de maratones por parte de los usuarios.
\item \emph{ZOJ}\footnote{ZOJ [aplicación en línea], $<$http://acm.zju.edu.cn/onlinejudge/$>$}, se trata del juez en línea de la universidad de Zhejiang en China, miembro del equipo ACM ICPC.
\item \emph{USACO Training Program Gateway}\footnote{USACO [aplicación en línea], $<$http://train.usaco.org/usacogate$>$}, este juez está dirigido especialmente a estudiantes de colegio en los  Estados Unidos de Norteamérica, con el fin de prepararlos para las IOI, sin embargo, ofrece sus servicios al público de maratonistas a nivel mundial.
\item \emph{Sphere Online Judge}\footnote{SPOJ [aplicación en línea], $<$http://www.spoj.pl/$>$}, además de poseer su propio set de problemas, presta el servicio de habilitar concursos y publicar ejercicios.
\item \emph{TJU Online Judge}\footnote{TUJ [aplicación en línea], $<$http://acm.tju.edu.cn/toj/$>$}, sistema juez perteneciente a la universidad China \emph{Tianjin University}, brinda problemas tipo ACM ICPC.
\end{itemize}

Las anteriores herramientas computacionales son una muestra del software existente para maratones de programación, en idioma ingles, ya que debido a la variedad de concursos de programación que se desarrollan en diferentes lugares del mundo, el idioma no siempre es ingles, lo que representa una barrera a la hora de utilizarlos.\newline

En lo que respecta a \emph{judges} disponibles como aplicaciones descargables, es posible listar:
\begin{itemize}
\item \emph{Programming Contest Control System}, PC\textasciicircum2, es una herramienta computacional que sirve para calificar(juzgar) problemas durante una maratón de programación, se basa en una arquitectura cliente servidor con clientes para los equipos participantes (teams), administrador y juez de la maratón de programación en curso.\newline
Los maratonistas envían la solución de los problemas a través del cliente teams para que sean calificados por el servidor. La persona encargada que desempeñar el rol de juez es quien a través del cliente juez determina si la calificación es o no apropiada.\newline
PC\textasciicircum2 fue desarrollado en \emph{California State University}, Sacramento (CSUS), está hecho en java, su actual versión es V9\footnote{PC\textasciicircum2 [Aplicación descargable], $<$http://www.ecs.csus.edu/pc2/$>$}.
\item \emph{RuscalTech Contest Control System}\footnote{RuscalTech Contest Control System [Aplicación descargable], $<$http://rtccs.sourceforge.net/$>$}, después de PC\textasciicircum2 este juez es bastante reconocido, está escrito en C\#, Visual Basic y .NET.
\item \emph{Debuxxe - Computer Olympiad Trainer}\footnote{Debuxxe [Aplicación descargable], $<$http://sourceforge.net/projects/debuxxe/$>$}, sistema juez escrito en VB6.0, no está enfocado a la competencia de varios equipos sino al entrenamiento personal del maratonista.
\item \emph{AceJudge}\footnote{AceJudgehttp [Aplicación descargable], $<$http://sourceforge.net/projects/acejudge/$>$}, está desarrollado en C\# y se especializa en concursos de programación.
%%%%CORREGIR APOSTROFE
\item \emph{Nafis' Programming Contest Judge} Tool\footnote{Nafis' [Aplicación descargable], $<$http://sourceforge.net/projects/judge-tool/}, se trata de un sistema cliente servidor, escrito en C y C++, según su página oficial de desarrollo, posee todas las características de PC\textasciicircum2 pero de una forma más sencilla y sin los bugs que éste suele presentar.
\item \emph{DOMjudge programming contest jury system}\footnote{DOMjudge [Aplicación descargable], $<$http://domjudge.sourceforge.net/$>$}, es un sistema cliente servidor, escrito en PHP, shell-script y C/C++.
\item \emph{gCoder}\footnote{gCoder [Aplicación descargable], $<$http://sourceforge.net/projects/gcoder/$>$}, se basa en un sistema cliente servidor, está escrito en Python.
\end{itemize}

\emph{Judges online} o instalables pueden ser utilizadas para el entrenamiento y/o para la competencia, sin embargo, su uso está limitado a las condiciones de sus administradores, en el caso de los \emph{online} o a las funcionalidades que estos ya traen por defecto, en el caso de los instalables, en consecuencia, es común encontrar herramientas personalizadas para las características específicas de determinados concursos.

En Colombia las diferentes universidades que promueven las maratones de programación, usan como herramienta de estudio, bien sea, PC\textasciicircum2 o algún otro juez de programación pertenecientes a universidades extranjeras, es decir, no se encuentran herramientas de estudio desarrolladas por y para las necesidades especificas de las maratones de las diferentes universidades del país.

En el ámbito de la Universidad Tecnológica de Pereira, no se encuentran aplicaciones desarrolladas para competencias de programación, situación que no debe de extrañar, sencillamente porque el programa de Ingeniería de Sistemas y Computación es pionero en esta actividad dentro de la institución.

\subsection{MARCO CONCEPTUAL}
\begin{itemize}
\item Maratón de Programación: Una maratón de programación es un evento competitivo en el que diferentes equipos se enfrentar a solucionar problemas durante el menor tiempo posible, para solucionar tales ejercicios se ponen en práctica de una manera integral las habilidades y conocimientos de un ingeniero, de modo que se logré programar el algoritmo adecuado.\\
Entre los diferentes propósitos de este tipo de actividades está el motivar y propiciar el trabajo en grupo, aplicar conocimientos de ingeniería e integrar la comunidad académica interesada en el desarrollo de software.
\item Casos de Prueba: Están conformados por archivos de entrada y salida, los de entrada corresponden a un conjunto de argumentos frente a los cuales es evaluado cada uno de los algoritmos que un maratonista propone como solución a un determinado problema, y según los cuales debe retornar los valores especificados en el archivo de salida.
\item ACM: la \emph{Association for Computer Machinery} (ACM) es una organización a nivel mundial que reúne a todos los profesionales, estudiantes, investigadores y a cada persona interesada en ciencias de la computación. Actualmente la ACM cuenta con más de 92000 miembros a nivel mundial y es reconocida como la asociación número uno para los profesionales en computación.\newline
Esta organización facilita varios recursos para toda su comunidad con el fin de que la computación crezca como ciencia y como profesión, entre ellos la biblioteca digital más importante del campo de la computación, las publicaciones, cursos y libros \emph{online}, conferencias, artículos científicos, noticias acerca de la computación, bolsa de empleo, blogs de discusión ACM, revistas científicas, entre otros\footnote{Aplicación en línea [base de datos],$<$http://dl.acm.org/$>$}.
\item ICPC: \emph{El International Collegiate Programming Contest} (ICPC) promueve maratones de programación bajo los auspicios de la ACM y tiene sede en la universidad de Baylor, estas maratones son conocidas como competencias ACM ICPC, gozan de un gran prestigio y tradicionalidad en el mundo de la programación, con ellas se fomenta la creatividad, el trabajo en equipo y la innovación en la creación de nuevos programas de software, se crea un ambiente de trabajo bajo presión en el que los estudiantes pueden poner a prueba todos sus conocimientos y capacidad de respuesta. \\
En las maratones de programación ACM ICPC participan decenas de miles de los mejores estudiantes y profesores en las disciplinas informáticas en casi 2.000 universidades de más de 80 países en seis continentes, estos se agrupan en una red global de universidades que participan en competencias regionales para clasificar a las Finales ACM-ICPC \emph{ World}.
\item Circuito Colombiano de Maratones de Programación REDIS/ACIS:La Red de Decanos y Directores de Ingeniería de Sistemas y Afines (REDIS), en conjunto con la Asociación Colombiana de Ingenieros de Sistemas (ACIS), organizan anualmente una serie de maratones de programación a nivel nacional, con las que se brinda un espacio de sana competencia entre equipos de diferentes univeridades del país, espacio en el cual miden su desempeño frente a problemas tipo maratón ACM ICPC.
\item Maratón Nacional de Programación: La maratón nacional de programación es un evento que sirve como mecanismo para clasificar a la Maratón Regional Latinoamericana ACM ICPC, es organizada por ACIS y REDIS. Se realiza cada año y de manera simultánea en diferentes sedes del país que han sido seleccionadas previamente.
\item Maratón Regional Latinoamericana ACM ICPC\footnote{ICPC Regional Rules [en línea], $<$http://www.acis.org.co/index.php?id=1677$>$}: Es una competencia internacional de programación, regional suramericana del ACM International Collegiate Programming Contest, se realiza en diferentes sedes de Suramérica (Argentina, Bolivia, Brasil, Chile, Colombia, Cuba, México, Perú y Venezuela), en este evento son seleccionados los equipos que participarán en la Maratón Mundial ACM ICPC.
\item Maratón Mundial ACM ICPC\footnote{World Finals Rules, [en línea], $<$http://cm.baylor.edu/welcome.icpc$>$}: Es el máximo nivel en las maratones organizadas por ACM ICPC, en estas participan los mejores equipos del mundo, y cada año se selecciona un lugar diferente del mundo como sede para el desarrollo del evento. \\
Los algoritmos sólo pueden ser implementados en lenguajes como C, C++ ó Java.


\end{itemize}
\clearpage

\begin{center}
\section{DISEÑO METODOLÓGICO PRELIMINAR}
\end{center}

\subsection{FORMULACIÓN DE LA HIPÓTESIS}
Una herramienta computacional que permita realizar postmaratones contribuye a la retroa-\hspace{0.5cm}limentación entre los maratonistas que participan en las maratones de programación llevadas a cabo en el Programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira.
\subsection {TIPO DE INVESTIGACIÓN}
La presente investigación tiene un enfoque cuantitativo.

\subsection{POBLACIÓN}
La población es el conjunto de estudiantes pertenecientes al Programa de Ingeniería de Sistemas y Computación
de la Universidad Tecnológica de Pereira que participan en las maratones de programación.

\subsection{DISEÑO DE INSTRUMENTOS PARA TOMA DE INFORMACIÓN}
Encuestas dirigidas a los estudiantes pertenecientes al programa de Ingeniería de Sistemas y Computación de la Universidad Tecnológica de Pereira que participan en las maratones de programación.
Se han diseñado dos formatos de encuesta, Encuesta 1 y Encuesta 2, las cuales se aplicarán en dos etapas, en la etapa PRE sin la existencia de la herramienta postmaratones y en la etapa POST cuando está ya esté implantada.

La  Encuesta 1, que permite medir los items establecidos en la tabla \ref{tb:opervar2} se aplicará en ambas etapas, mientras que la Encuesta 2 que permite validar el proyecto, sólo se aplicará en la etapa POST.

Los formatos de las encuestas son:
\vspace{0.4 cm}

%\\ %\\ \\ 


%%EN LA ETAPA PRE SE APLICARÁ SÓLO LA PRIMERA ENCUESTA
%%EN LA ETAPA POST SE APLICARAN LAS DOS ENCUESTAS 
%%\vspace{0.5 cm}
ENCUESTA 1
\begin{enumerate}
\item ¿En cuántas competencias del Circuito Colombiano de Maratones de Programación REDIS/ACIS (de ahora en adelante: CCMP REDIS/ACIS) ha participado?
    \begin{enumerate}
        \item Ninguna
        \item Entre 1 y 4
        \item Entre 5 y 8
        \item Entre 9 y 12
        \item Entre 13 y 16
        \item Más de 16
    \end{enumerate}
    
\item ¿Ha utilizado alguna vez un juez en línea (\emph{online judge})?
    \begin{enumerate}
        \item No se que es
        \item Nunca 
        \item Si
    \end{enumerate}

\item ¿Ha descargado material de apoyo para las maratones de programación, tales cómo casos de prueba, enunciado y/o soluciones de problemas?
    \begin{enumerate}
        \item No los conozco
        \item Nunca 
        \item Si
    \end{enumerate}
    
\item ¿Después de una competencia de programación qué hace con los ejercicios que no logró resolver correctamente?
    \begin{enumerate}
        \item Los resuelve y somete en un juez en línea
        \item Los resuelve y \textbf{no} los somete en un juez en línea
        \item Busca la solución en internet
        \item No los vuelve a mirar
    \end{enumerate}
        
\item  ¿Después de una competencia de programación qué hace con los ejercicios que no alcanzó a trabajar?
    \begin{enumerate}
        \item Trata de resolverlos
        \item Los resuelve y somete en un juez en línea
        \item Los resuelve y \textbf{no} los somete en un juez en línea
        \item Busca la solución en internet
        \item No los vuelve a mirar
    \end{enumerate}

\item  ¿Considera que actualmente en la Universidad Tecnológica de Pereira existe retroalimentación después de las competencias del CCMP REDIS/ACIS?
    \begin{enumerate}
        \item No
        \item Si
    \end{enumerate}
    
Si su anterior respuesta fue afirmativa, responda las siguientes preguntas, de lo contrario ha finalizado la encuesta.
   
\item  ¿Qué tan adecuada considera que es la retroalimentación después de las competencias del CCMP REDIS/ACIS?
    \begin{enumerate}
        \item Mala
        \item Aceptable
        \item Buena
        \item Excelente
    \end{enumerate}
    
\item  ¿Qué tanto participa en el proceso de retroalimentación después de las competencias del CCMP REDIS/ACIS?
    \begin{enumerate}
        \item Nada
        \item Poco 
        \item Mucho
    \end{enumerate}
    
\end{enumerate}
\vspace{2.0 cm}
 	
ENCUESTA 2:
\begin{enumerate}

\item  ¿Qué tanto considera usted que le aporta la actual herramienta postmaratón al proceso de retroalimentación después de las competencias del CCMP REDIS/ACIS?
    
    \begin{enumerate}
        \item Nada
        \item Poco
        \item Mucho
    \end{enumerate}

\item  ¿Cómo calificaría usted el espacio de retroalimentación que le brinda la herramienta de estudio postmaratón?
    \begin{enumerate}
        \item Malo
        \item Aceptable
        \item Bueno
        \item Excelente
    \end{enumerate}

\item  ¿Qué tanto participa usted con la actual herramienta postmaratón?
        \begin{enumerate}
        \item Nada
        \item Poco 
        \item Mucho
    \end{enumerate}
    
\item  ¿Considera usted que la actual herramienta postmaratón le brinda el espacio necesario para socializar la solución de los problemas de maratón con sus compañeros?
        \begin{enumerate}
        \item No
        \item Si
    \end{enumerate}
    
\item  ¿Qué le mejoraría a la actual herramienta postmaratón?
    
\end{enumerate}	
\vspace{1.0 cm}

\subsection{OPERACIONALIZACIÓN DE VARIABLES}
A continuación se especifican las variables identificadas para comprobar la hipótesis.
%%\begin{table}[h]
%%\begin{table}[p]
%\begin{table}[h!b!p!]
%\begin{table}[h]
%\begin{table}[h]
%%corrección variables
\begin{table}[p!]
\caption{Operacionalización de variables}
\label{tb:opervar2}
\begin{center}
\resizebox{15cm}{!} {
\begin{tabular}{|p{3cm}|p{5cm}|c|p{4cm}|p{10cm}|}
\hline
Variable & Definición Operacional & Categorías & Indicadores & Items\\
\hline
EXPERIENCIA MARATONISTA & Grado de experiencia del maratonista con maratones de programación, aplicaciones y material de apoyo que contribuyan a la retroalimentación de las mismas. & Maratonistas &  \multirow{2}{*}{}{ Nivel de experiencia en maratones de programación} & 
¿En cuántas competencias del Circuito Colombiano de Maratones de Programación REDIS/ACIS (de ahora en adelante: CCMP REDIS/ACIS) ha participado?
    \begin{enumerate}
        \item Ninguna
        \item Entre 1 y 4
        \item Entre 5 y 8
        \item Entre 9 y 12
        \item Entre 13 y 16
        \item Más de 16
    \end{enumerate}\\
& & Maratonistas & Nivel de experiencia con jueces online &
¿Ha utilizado alguna vez un juez en línea (\emph{online judge})?
    \begin{enumerate}
        \item No se que es
        \item Nunca 
        \item Si
    \end{enumerate}\\
& & Maratonistas & Nivel de conocimiento de material de apoyo para resolver maratones de programación &
¿Ha descargado material de apoyo para las maratones de programación, tales cómo casos de prueba, enunciado y/o soluciones de problemas?
    \begin{enumerate}
        \item No los conozco
        \item Nunca 
        \item Si
    \end{enumerate}\\
\hline
ACTIVIDAD POSTMARATÓN & Grado de actividad postmaratón e indicios de busqueda de retroalimentación. & Maratonistas &  \multirow{2}{*}{}{ Nivel de actividad postmaratón} &
¿Después de una competencia de programación qué hace con los ejercicios que no logró resolver correctamente?
    \begin{enumerate}
        \item Los resuelve y somete en un juez en línea
        \item Los resuelve y \textbf{no} los somete en un juez en línea
        \item Busca la solución en internet
        \item No los vuelve a mirar
    \end{enumerate}  
¿Después de una competencia de programación qué hace con los ejercicios que no alcanzó a trabajar?
    \begin{enumerate}
        \item Trata de resolverlos
        \item Los resuelve y somete en un juez en línea
        \item Los resuelve y \textbf{no} los somete en un juez en línea
        \item Busca la solución en internet
        \item No los vuelve a mirar
    \end{enumerate}\\
\hline
ESTADO RETROALIMENTACIÓN & Grado de retroalimentación y cálidad de la misma. & Maratonistas &  \multirow{2}{*}{}{ Nivel de retroalimentación} &
¿Considera que actualmente en la Universidad Tecnológica de Pereira existe retroalimentación después de las competencias del CCMP REDIS/ACIS?
    \begin{enumerate}
        \item No
        \item Si
    \end{enumerate}
    
Si su anterior respuesta fue afirmativa, responda las siguientes preguntas, de lo contrario ha finalizado la encuesta.\\
& & Maratonistas & Cálidad de la retroalimentación &
¿Qué tan adecuada considera que es la retroalimentación después de las competencias del CCMP REDIS/ACIS?
    \begin{enumerate}
        \item Mala
        \item Aceptable
        \item Buena
        \item Excelente
    \end{enumerate}

¿Qué tanto participa en el proceso de retroalimentación después de las competencias del CCMP REDIS/ACIS?
    \begin{enumerate}
        \item Nada
        \item Poco 
        \item Mucho
    \end{enumerate}\\
\hline
%%
\end{tabular}
}
\end{center}	
\end{table}

\clearpage

\subsection {DESCRIPCIÓN OBJETIVOS}
\begin{enumerate}
	\item Consiste en una etapa de análisis en conjunto con el docente que lidera las maratones de programación en el programa, con el fin de levantar los requerimientos de la herramienta.
	\item Este objetivo se logra mediante una síntesis de herramientas computacionales que funcionen como juez de maratones de programación y sean de código abierto.
	\item Se trata de una etapa de estudio y comprensión del juez elegido, de modo que se puedan añadir las funcionalidades necesarias para el proyeto y se cumpla con los requerimientos establecidos previamente.
	\item Implantación de la aplicación  en un servidor del programa para probar su funcionamiento.
	\item Consiste en una prueba piloto en la que se abordarán dos competencias de programación para brindar la etapa postmaratón y aplicar las encuestas que evidenciaran los indicadores de retroalimentación definidos previamente.

\end{enumerate}

\clearpage

\begin{center}
\section{ESQUEMA TEMÁTICO}
\end{center}
\begin{enumerate}
\item Introducción.
\item Planteamiento del problema de investigación.
\item Justificación. 
\item Objetivos generales y específicos.
\item Marco Referencial.
\pointedenum\begin{enumerate}
\item Marco histórico.
\item Estado del arte.
\item Marco Conceptual.
\end{enumerate}
\item Diseño metodológico
\pointedenum\begin{enumerate}	
\item Hipótesis.
\item Tipo de investigación.
\item Población
\item Operacionalización de variables
\end{enumerate}
\item Grado de retroalimentación.
\item Definición de requisitos del sistema
\item Herramientas computacionales de código abierto que funcionan como jueces de maratones de programación.
\item Comprensión del juez elegido para el proyecto.
\item Adaptación del juez seleccionado como herramienta de estudio.
\item Implantación y puesta a punto de la herramienta.
\item Implantación prueba piloto.
\item Medición del impacto del proyecto.
\item Documentación de la herramienta.
\item Conclusiones.
\item Bibliografía.
\end{enumerate}
\clearpage

\begin{center}
\section{PERSONAS QUE PARTICIPAN EN EL PROYECTO}
\end{center}	
Lina Marcela Jiménez Becerra\\
Estudiante Ingeniería de Sistemas y Computación\\
Universidad Tecnológica de Pereira\\
\newline
\newline
COLABORADORES:
\newline
\newline
Ing. Hugo Humberto Morales Peña\\
Director de proyecto de grado\newline
Ingeniero de Sistemas\\
Profesor Programa Ingeniería de Sistemas y Computación\\
Universidad Tecnológica de Pereira\\
\newline
\newline
In-Sílico\\
Semillero de Investigación\\
Pulpa\\
Semillero de Investigación\\
Programa Ingeniería de Sistemas y Computación\\
Universidad Tecnológica de Pereira\\
\clearpage

\begin{center}
\section{RECURSOS DISPONIBLES}
\end{center}

\begin{table}[h!]
\caption{Costos recursos disponibles}
\label{tb:costos}
\begin{center}
\resizebox{12cm}{!} {
\begin{tabular}{|p{10cm}|c|c|}
\hline
\cellcolor[gray]{0.8}Recursos & \cellcolor[gray]{0.8}Costo/Mensual \\
\hline
Ingeniero de sistemas & \$800.000 \\ 
\hline
Computador de Escritorio & \$210.000 \\
\hline
Código fuente de aplicaciones jueces de maratones de programación & \$0 \\
\hline
Acceso a internet & \$52.750\\
\hline
Recursos bibliográficos & \$0 \\
\hline
\cellcolor[gray]{0.8}Costo Total & \cellcolor[gray]{0.8}\$4'251.000 \\
\hline
\end{tabular}
}
\end{center}
\end{table}

Nota:

Los recursos proveidos por el estudiante encargado de desarrollar el proyecto, son:
\begin{itemize}
\item Ingeniero de sistemas: hace referencia al tiempo y conocimiento que el estudiante invertirá para desarrollar el proyecto. El costo está calculado con dos salarios mínimos(aprox).
\item Computador de escritorio.
\item Acceso a internet.
\end{itemize}

En lo que respecta a los recursos bibliográficos, estos serán proveidos por la universidad a través de los convenios que posee para acceder a bases de datos de artículos publicados tanto en IEEE explore como en ACM Digital Library.

Finalmente el recurso correspondientes al código fuente de aplicaciones, será obtenido de software open source que se distribuye a través de internet y no posee costo.
\clearpage

\begin{center}
\section{POSIBILIDADES DE PUBLICACIÓN}
\begin{itemize}
\item Un artículo en la revista Scientia et technica\footnote{Ciencia y Técnica, ISSN 0122-1701}, donde se de a conocer la importancia y resultados de la investigación realizada en este proyecto.
\item Un articulo dirigido a las publicaciones de ACIS, en el que se plasme la importante iniciativa y resultados al llevar a cabo este proyecto.
\end{itemize}
\end{center}
\clearpage

\begin{center}
\section{CRONOGRAMA}
\end{center}
\doublespacing

\begin{table}[h!]
\caption{Cronograma de actividades}
\label{tb:crono}
\begin{center}
\resizebox{15cm}{!} {
\begin{tabular}{|p{8cm}|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
ACTIVIDADES & \multicolumn{16}{|c|}{SEMANAS} \\
\cline{2-17}
& 01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 & 14 & 15 & 16 \\
\hline
Medir Niveles Previos de Retroalimentación. &\cellcolor[gray]{0.8} & & & & & & & & & & & & & & &\\
\hline
Definir los requerimientos para el diseño de la herramienta computacional. &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & & & & & & & & & & & & & &\\
\hline
Estudio y selección de jueces de código abierto para adaptar al proyecto. & &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & & & & & & & & & & &\\
\hline
Adaptación de la herramienta seleccionada. & & & & &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8}  &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & & & & &\\
\hline
Implantación mediante una prueba pilóto. & & & & & & & & & & &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} & &\\
\hline
Medición impacto del proyecto. & & & & & & & & & & & & &\cellcolor[gray]{0.8} & \cellcolor[gray]{0.8} & \cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} \\
\hline
Generar la documentación de la herramienta. & & & & & & & & & & & & &\cellcolor[gray]{0.8} & \cellcolor[gray]{0.8} & \cellcolor[gray]{0.8} &\cellcolor[gray]{0.8} \\
\hline
\end{tabular}
}
\end{center}
\end{table}

\clearpage
%%\tiny{http://dl.acm.org/citation.cfm?id=1349332.1349341\&coll=DL\&dl=GUIDE\&CFID=42331413\&CFTOKEN=61301375}\newline
\begin{center}
\section{BIBLIOGRAFÍA}
\end{center}
AMIRPOUR AMARAII Saman. Observations on Teamwork Strategies in the ACM International Collegiate Programming
Contest [base de datos en línea]. Volume 14 Issue 4, New York, USA. Magazine Crossroads, June 2008. Disponible en: ACM DIGITAL LIBRARY: http://dl.acm.org/citation.cfm?id=1349332.1349341\\	

MANZOOR Shahriar. Common mistakes in online and real-time contests [base de datos en línea]. Volume 14 Issue 4, New York, USA, Magazine Crossroads, June 2008, Late Summer Edition. Disponible en: ACM DIGITAL LIBRARY:\\
http://dl.acm.org/citation.cfm?id=1375972.1375976\\ 

ERNST Fabian, MOELANDS Jeroen, PIETERSE Seppo. Programming contest strategies [base de datos en línea]. Volume 3 Issue 2, New York, USA, Magazine Crossroads, Special issue on computer games, December 1996. Disponible en: ACM DIGITAL LIBRARY:\\
http://dl.acm.org/citation.cfm?id=332132.332139\\	

KHERA Vivek, ASTRACHAN Owen, KOTZ David. The internet programming contest: a report and philosophy [base de datos en línea]. Volume 25 Issue 1, New York,USA. SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education, March 1993. Disponible en: ACM DIGITAL LIBRARY:\\
http://dl.acm.org/citation.cfm?doid=169070.169105\\

ANDRIANOFF Steven K, LEVINE David B, GEWARD Stephen D, HEISSENBERGER Greta A. A testing-based framework for programming contests [base de datos en línea]. New York,USA. ACM eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange. Disponible en: ACM DIGITAL LIBRARY:\\
http://dl.acm.org/citation.cfm?id=965660.965680\\

LEAL José Paulo, SILVA Fernando. Mooshak: a Web-based multi-site programming contest system [en línea], Paper. [Portugal]: December 2001. Disponible en internet:\\
http://www.dcc.fc.up.pt/~zp/papers/mooshak-spe.pdf\\ 

AVELLANEDA Fabio. Guía para la configuración de una competencia del Circuito Colombiano de Maratones de Programación [en línea], Guía. [Bogotá]. Disponible en internet:\\ 
http://acm.javeriana.edu.co/maratones/wp-content/uploads/descargas\\

REDIS y Afines: Lineamientos de Maratones de Programación Colombianas.\newline
Sitio web Oficial: http://rediscol.org/cmsv3/?p=210\\

ACIS: Descripción Maratones de Programación Colombianas.\newline
Sitio web Oficial: http://www.acis.org.co/index.php?id=556\\

Association for Computing Machinery. The ACM-ICPC International Collegiate Programming Contest.\newline
Sitio web Ofical: http://cm.baylor.edu/\\

ACM-ICPC Live Archive. History ACM ICPC Regional Contest. \\Sitio web Oficial: http://livearchive.onlinejudge.org/\\

ACM Server: History ACM ICPC Regional Contest. Sitio web Oficial: http://acm-server.ru/\\

UVA Online Judge. Sitio web Oficial: http://uva.onlinejudge.org/\\

SOJ Online Judge. Sitio web Oficial: http://www.spoj.pl/\\

Benelux Algorithm Programming: GEPWNAGE Online Judge.\newline
Sitio web Oficial: http://www.bapc.eu/\\

North Western European Regional Contest: Computer Environment.\\
Sitio web Oficial: http://www.nwerc.eu/\\

Southwestern Europe Regional Contest: Computer Environment.\newline
Sitio web Oficial: http://www.swerc.eu/\\

Programming Contest Control System: Documentación.\newline
Sitio web Oficial: http://www.ecs.csus.edu/pc2/

\end{document}
